home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Overshadow 30
/
Overshadow_30_2005-02-21_Angels.d64
/
formula oversrc
< prev
next >
Wrap
Text File
|
2023-02-26
|
4KB
|
147 lines
; 1-bLOCK-fAST-2X-ora-"fULLSCREEN"-dYCPER BY nINJA / tHE dREAMS IN 2004
INCLUDE STANDARD.C64
PLOT_PNT = $22
TEXT_PNT = $35
DYCP_NR = $66
SIN_BAS = $78
SIN_CNT = $80 ; SIN_CNT2 BETWEEN $80 AND $C0,
KEY_INDEX = $C5 ; DEPENDING ON PRESSED KEY
TEXT_CNT = $FB
SIN_DAT = $0A00
ORG $0801
IF 0
252 FORN=1TO259:POKE2559+N,(COS(N/20.3)+1)*99:NEXT:SYS2095
ENDIF
BINCLUDE "C64_SRC\DYCP1BLK.BAS",2
ORG *-2
JMP_IN:
LDX #0
CLC
LDA #$A1
STA TEXT_PNT+1
STA $D021 ; WORK AROUND OLD-KERNAL BUG
MAKE_SCR_L2:
JSR $E9FF ; SET $D1 & COLOR-RAM FOR LINE X
TXA
MAKE_SCR_L1:
INY
STA ($D1),Y
ADC #5
BCC MAKE_SCR_L1
INX
CPX #25
BCC MAKE_SCR_L2
JSR $E5A0 ; RESTORE KERNAL COLORS
LDX #$2E
ENDLESS:
LDA #$37
STA $01
LDY $D012 ; $FF5E IS TOO SLOW
BNE *-3
LDA PLOT_PNT+1
LSR
LSR
ORA #$10
STA $D018 ; WE USE DOUBLE-BUFFERING
LDA $D016
CMP #$C2
PHA
LDA #$80 ; ADJUST SINE-OFFSET WHEN
ROL ; HARDSCROLLING IS NEAR
STA HARD_MOD+1 ; (REMEMBER DOUBLE-BUFFERING!)
PLA
SBC #1
AND #7
STA $D016
BNE NO_HARDSCROLL
JSR $B69A ; A=0, C=1 -> INCREASE TEXT_PNT
INC SIN_BAS ; SIN_BAS=$78=SEI
NO_HARDSCROLL = *-1 ; =VERY DIRTY, BUT WORKS!
LSR $01
LDA #$100-48
STA TEXT_CNT
LDA #$38
STA PLOT_PNT
TXA ; Y=0, X=TEXT_PNT+1
EOR #($3E!$27)
STA PLOT_PNT+1
INC SIN_BAS
LDA SIN_BAS
STA SIN_CNT
ADC #4-1
LDX KEY_INDEX ; SUPPORT ALL KEYS -> LUXURY :)
STA SIN_CNT,X
PLOT_L2:
LDA #0
LDX SIN_CNT,Y
INX
STX SIN_CNT,Y
HARD_MOD: LDY SIN_DAT+1,X
STA (PLOT_PNT),Y
INY
STA (PLOT_PNT),Y
INY
STA (PLOT_PNT),Y
INY
STA (PLOT_PNT),Y
INY
STA (PLOT_PNT),Y
INY
STA (PLOT_PNT),Y
INY
STA (PLOT_PNT),Y
INY ; LOOP IS TOO SLOW, WOULD SPOIL
STA (PLOT_PNT),Y ; THE 1 FRAME/DYCP RATIO
LDA KEY_INDEX
EOR DYCP_NR
STA DYCP_NR
TAY
BNE PLOT_L2
BYT $2C
PLOT_L5:
DEC TEXT_PNT+1 ; USE DIFFERENT TEXT FOR 2ND DYCP
LDX SIN_CNT,Y
LDY TEXT_CNT
LDA (TEXT_PNT),Y
LDY SIN_DAT+3,X
ASL
ASL
ASL
TAX
LDA #($D0>>1)
ROL
STA PLOT_MOD+2 ; WE CAN DISPLAY 64 CHARS
PLOT_L1:
PLOT_MOD: LDA $D000,X
ORA (PLOT_PNT),Y
STA (PLOT_PNT),Y
INX
INY
TXA
AND #7
BNE PLOT_L1
LDA KEY_INDEX
BEQ SKIP_ALTTEXT
EOR DYCP_NR
STA DYCP_NR
TAY
BNE PLOT_L5
INC TEXT_PNT+1
SKIP_ALTTEXT:
LDA #$28
JSR $B5F9 ; UPDATE PLOT_PNT, SETS X
INC TEXT_CNT
BNE PLOT_L2
JMP ENDLESS
END $0801